using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using Backend.JYD.Model.Rate;

namespace Backend.JYD.EFDAL.Mapping
{
    public class DataClassMap : EntityTypeConfiguration<DataClass>
    {
        public DataClassMap()
        {
            // Primary Key
            this.HasKey(t => new { t.id });

            // Properties
            this.Property(t => t.id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
            this.Property(t => t.name)
                .HasMaxLength(100);
            this.Property(t => t.rate_type)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            this.Property(t => t.description)
                 .HasMaxLength(100);
            this.Property(t => t.Status)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            this.Property(t => t.CreateTime)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            this.Property(t => t.UpdateTime)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            this.Property(t => t.OpId)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            

            // Table & Column Mappings
            this.ToTable("DataClass");
            this.Property(t => t.id).HasColumnName("id");
            this.Property(t => t.id).HasColumnName("name");
            this.Property(t => t.id).HasColumnName("rate_type");
            this.Property(t => t.id).HasColumnName("description");
            this.Property(t => t.id).HasColumnName("Status");
            this.Property(t => t.id).HasColumnName("CreateTime");
            this.Property(t => t.id).HasColumnName("UpdateTime");
            this.Property(t => t.id).HasColumnName("OpId");
        }
    }
}
